package cn.chinaunicom.mini.program.dingtalk.events.model.callback;

import lombok.Getter;
import lombok.Setter;

/**
 * @ProjectName: dingtalk-adapter
 * @Package: cn.chinaunicom.mini.program.dingtalk.events.model.callback
 * @ClassName: MarketOrder
 * @Description: 订单信息实体类 -用于封装与订单相关的各项详细信息，包括购买类型、分销商信息、订单费用、商品信息及服务时间等。
 * @Author: wangjc
 * @CreateDate: 2024/6/12
 * @UpdateUser: wangjc
 * @UpdateDate: 2024/6/12
 * @UpdateRemark: 更新内容
 * @Version: 1.0
 */
@Getter
@Setter
public class IntegrationAppInstallCallbackData {
    /**
     * 订单类型
     * 取值范围如"BUY"表示购买。
     */
    private String orderType;

    /**
     * 分销商企业名称
     * 分销该商品的组织或企业的名称。
     */
    private String distributorCorpName;

    /**
     * 套件ID
     * 提供服务的应用套件唯一标识。
     */
    private long suiteId;

    /**
     * 用户UnionID
     * 用户在企业微信中的唯一标识。
     */
    private String unionId;

    /**
     * 折扣后费用
     * 用户实际支付的费用（单位可能根据上下文需转换）。
     */
    private int discountFee;

    /**
     * 企业CorpID
     * 购买该商品的企业ID。
     */
    private String corpId;

    /**
     * 订单ID
     * 唯一标识一个订单的ID。
     */
    private String orderId;

    /**
     * 同步动作标识
     * 如"integration_app_install_event"标识特定的同步操作类型。
     */
    private String syncAction;

    /**
     * 商品编码
     * 商品在系统中的唯一标识编码。
     */
    private String itemCode;

    /**
     * 子商品数量
     * 若商品可拆分购买，表示子商品的数量。
     */
    private String subQuantity;

    /**
     * 分销商CorpID
     * 分销商在企业微信的CorpID。
     */
    private String distributorCorpId;

    /**
     * 商品名称
     * 商品的描述性名称。
     */
    private String itemName;

    /**
     * 实付金额
     * 用户实际支付的金额。
     */
    private double payFee;

    /**
     * 服务停止时间
     * 服务有效结束的时间戳（毫秒）。
     */
    private long serviceStopTime;

    /**
     * 服务开始时间
     * 服务有效开始的时间戳（毫秒）。
     */
    private long serviceStartTime;

    /**
     * 套件密钥
     * 用于验证请求合法性的套件密钥。
     */
    private String suiteKey;

    /**
     * 商品大类编码
     * 商品所属类别或系列的编码。
     */
    private String goodsCode;

    /**
     * 支付完成时间
     * 用户完成支付的时间戳（毫秒）。
     */
    private long paidtime;

    /**
     * 商品全称
     * 商品的完整名称。
     */
    private String goodsName;
}
